home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekkan Dennou Club 142
/
Gekkan Dennou Club - 2000.3 Vol. 142 (Japan).7z
/
Gekkan Dennou Club - 2000.3 Vol. 142 (Japan) (Track 1).bin
/
tools
/
s44play
/
s44p101s.lzh
/
dosconst.equ
< prev
next >
Wrap
Text File
|
1999-10-19
|
8KB
|
201 lines
.ifndef __DOSCONST_EQU__
__DOSCONST_EQU__ equ 1
;----------------------------------------------------------------
;メモリ管理テーブル
.offset 0
mmPrev: .ds.l 1 ;$0000 .l 直前のメモリ管理テーブルのアドレス(なければ0)
mmParent: .ds.l 1 ;$0004 .l このブロックを確保したプロセスのメモリ管理テーブルのアドレス
; 最上位1バイトは
; $00=通常のメモリブロック
; $FD=_S_PROCESSによるサブのメモリ管理の親のメモリブロック
; $FF=常駐したプロセスのメモリブロック
mmTail: .ds.l 1 ;$0008 .l 使用している末尾アドレス+1
mmNext: .ds.l 1 ;$000C .l 直後のメモリ管理テーブルのアドレス(なければ0)
mmSize: ;$0010 (16バイト)
;プロセス管理テーブル
mmEnvPtr: .ds.l 1 ;$0010 .l 環境の領域のアドレス
mmExitvc: .ds.l 1 ;$0014 .l _EXITVCのベクタ(親の_EXECの直後)
mmCtrlvc: .ds.l 1 ;$0018 .l _CTRLVCのベクタ
mmErrjvc: .ds.l 1 ;$001C .l _ERRJVCのベクタ
mmCmdLinePtr: .ds.l 1 ;$0020 .l コマンドラインのアドレス
mmHandler: .ds.b 12 ;$0024 .b[12] ハンドラの使用状況
mmBssTop: .ds.l 1 ;$0030 .l bssの先頭
mmHeapTop: .ds.l 1 ;$0034 .l ヒープの先頭
mmStackTop: .ds.l 1 ;$0038 .l スタックエリアの先頭
mmUsp: .ds.l 1 ;$003C .l 親のusp
mmSsp: .ds.l 1 ;$0040 .l 親のssp
mmSr: .ds.w 1 ;$0044 .w 親のsr
mmAbortSr: .ds.w 1 ;$0046 .w アボート時のsr
mmAbortSsp: .ds.l 1 ;$0048 .l アボート時のssp
mmTrap10: .ds.l 1 ;$004C .l TRAP#10のベクタ
mmTrap11: .ds.l 1 ;$0050 .l TRAP#11のベクタ
mmTrap12: .ds.l 1 ;$0054 .l TRAP#12のベクタ
mmTrap13: .ds.l 1 ;$0058 .l TRAP#13のベクタ
mmTrap14: .ds.l 1 ;$005C .l TRAP#14のベクタ
mmOsFlag: .ds.l 1 ;$0060 .l OSフラグ(-1=CONFIG.SYSのSHELLで起動,0=その他)
mmModuleNumber: .ds.b 1 ;$0064 .b モジュール番号
.ds.b 3 ;$0065 .b[3] 未定義
mmChildPtr: .ds.l 1 ;$0068 .l 子プロセスのメモリ管理テーブル
.ds.l 5 ;$006C .l[5] 予約
mmPath: .ds.b 68 ;$0080 .b[68] 実行ファイルのパス
mmName: .ds.b 24 ;$00C4 .b[24] 実行ファイルのファイル名
.ds.l 9 ;$00DC .l[9] 予約
mmProgram:
.text
;----------------------------------------------------------------
;プロセス管理テーブル
.offset 0
pmEnvPtr: .ds.l 1 ;$0000 .l 環境の領域のアドレス
pmExitvc: .ds.l 1 ;$0004 .l _EXITVCのベクタ(親の_EXECの直後)
pmCtrlvc: .ds.l 1 ;$0008 .l _CTRLVCのベクタ
pmErrjvc: .ds.l 1 ;$000C .l _ERRJVCのベクタ
pmCmdLinePtr: .ds.l 1 ;$0010 .l コマンドラインのアドレス
pmHandler: .ds.b 12 ;$0014 .b[12] ハンドラの使用状況
pmBssTop: .ds.l 1 ;$0020 .l bssの先頭
pmHeapTop: .ds.l 1 ;$0024 .l ヒープの先頭
pmStackTop: .ds.l 1 ;$0028 .l スタックエリアの先頭
pmUsp: .ds.l 1 ;$002C .l 親のusp
pmSsp: .ds.l 1 ;$0030 .l 親のssp
pmSr: .ds.w 1 ;$0034 .w 親のsr
pmAbortSr: .ds.w 1 ;$0036 .w アボート時のsr
pmAbortSsp: .ds.l 1 ;$0038 .l アボート時のssp
pmTrap10: .ds.l 1 ;$003C .l TRAP#10のベクタ
pmTrap11: .ds.l 1 ;$0040 .l TRAP#11のベクタ
pmTrap12: .ds.l 1 ;$0044 .l TRAP#12のベクタ
pmTrap13: .ds.l 1 ;$0048 .l TRAP#13のベクタ
pmTrap14: .ds.l 1 ;$004C .l TRAP#14のベクタ
pmOsFlag: .ds.l 1 ;$0050 .l OSフラグ(-1=CONFIG.SYSのSHELLで起動,0=その他)
pmModuleNumber: .ds.b 1 ;$0054 .b モジュール番号
.ds.b 3 ;$0055 .b[3] 未定義
pmChildPtr: .ds.l 1 ;$0058 .l 子プロセスのメモリ管理テーブル
.ds.l 5 ;$005C .l[5] 予約
pmPath: .ds.b 68 ;$0070 .b[68] 実行ファイルのパス
pmName: .ds.b 24 ;$00B4 .b[24] 実行ファイルのファイル名
.ds.l 9 ;$00CC .l[9] 予約
pmSize: ;$00F0 (240バイト)
pmProgram:
.text
;----------------------------------------------------------------
;_NAMESTS形式のファイル名
.offset 0
nsFlag: .ds.b 1 ;$0000 フラグ
nsDrive: .ds.b 1 ;$0001 内部ドライブ番号(0=A:)
nsPath: .ds.b 65 ;$0002 パス(前後と区切りは$09または'\')
nsName1: .ds.b 8 ;$0043 ファイル名1(残りは' ')
nsExt: .ds.b 3 ;$004B 拡張子(残りは' ')
nsName2: .ds.b 10 ;$004E ファイル名2(残りは0)
nsSize: ;$0056 (88バイト)
.text
;----------------------------------------------------------------
;_NAMECKのバッファの構造
.offset 0
ncDrive: .ds.b 2 ;$0000 ドライブ名('A:')
ncPath: .ds.b 65 ;$0002 パス('/path/',0)
ncName: .ds.b 19 ;$0043 ファイル名('name',0)
ncExt: .ds.b 5 ;$0056 拡張子('.ext',0)
ncSizeOdd: ;$005B (91バイト)
.even
ncSize: ;$005C (92バイト)
.text
;----------------------------------------------------------------
;_FILES,_NFILESのバッファ
;fSys~は環境によって異なるので使わないこと
;fLong~はバッファアドレスのbit31を1にしたとき有効
.offset 0
fiSysAttribute: .ds.b 1 ;$0000 検索する属性
fiSysDrive: .ds.b 1 ;$0001 検索する内部ドライブ番号(0=A:)
fiSysSector: .ds.l 1 ;$0002 エントリがあるセクタ番号
fiSysConnect: .ds.w 1 ;$0006 連続しているセクタ数-1
fiSysOffset: .ds.w 1 ;$0008 セクタ先頭からのオフセット
; ($FFFF=該当するファイルがもうない)
fiSysName: .ds.b 8 ;$000A 検索するファイル名
fiSysExt: .ds.b 3 ;$0012 検索する拡張子
fiAttribute: .ds.b 1 ;$0015 属性
fiTime: .ds.w 1 ;$0016 時刻
fiDate: .ds.w 1 ;$0018 日付
fiLength: .ds.l 1 ;$001A ファイルサイズ
fiName: .ds.b 23 ;$001E ファイル名
fiSizeOdd: ;$0035 (53バイト)
.even
fiSize: ;$0036 (54バイト)
.offset fiSizeOdd
fiLongNamests:
fiLongDrive: .ds.b 2 ;$0035 内部ドライブ名('A:')
fiLongPath: .ds.b 65 ;$0037 パス(区切りは'\')
fiLongName1: .ds.b 8 ;$0078 ファイル名1(残りは' 'または'?')
fiLongExt: .ds.b 3 ;$0080 拡張子(残りは' 'または'?')
fiLongName2: .ds.b 10 ;$0083 ファイル名2(残りは0)
fiLongSize: ;$008D
.text
;----------------------------------------------------------------
;スレッド管理テーブル
.offset 0
thNext: .ds.l 1 ;$0000 次のスレッド管理テーブルのアドレス
thFlag: .ds.b 1 ;$0004 ウェイトフラグ(-2=強制スリープ状態,-1=スリープ状態,0=実行中)
thCount: .ds.b 1 ;$0005 カウンタ
thNice: .ds.b 1 ;$0006 最大カウント(優先レベル)
thDosCall: .ds.b 1 ;$0007 実行中の(レベル0で入った)DOSコール番号
thProcess: .ds.l 1 ;$0008 実行中のプロセスのメモリ管理テーブル
thRegs:
thRegUsp: .ds.l 1 ;$000C usp
thhRegD0: .ds.l 1 ;$0010 d0
thRegD1: .ds.l 1 ;$0014 d1
thRegD2: .ds.l 1 ;$0018 d2
thRegD3: .ds.l 1 ;$001C d3
thRegD4: .ds.l 1 ;$0020 d4
thRegD5: .ds.l 1 ;$0024 d5
thRegD6: .ds.l 1 ;$0028 d6
thRegD7: .ds.l 1 ;$002C d7
thRegA0: .ds.l 1 ;$0030 a0
thRegA1: .ds.l 1 ;$0034 a1
thRegA2: .ds.l 1 ;$0038 a2
thRegA3: .ds.l 1 ;$003C a3
thRegA4: .ds.l 1 ;$0040 a4
thRegA5: .ds.l 1 ;$0044 a5
thRegA6: .ds.l 1 ;$0048 a6
thRegSr: .ds.w 1 ;$004C sr
thRegPc: .ds.l 1 ;$004E pc
thRegSsp: .ds.l 1 ;$0052 ssp
thDosLevel: .ds.w 1 ;$0056 DOSコールのレベル
thDosSp: .ds.l 1 ;$0058 DOSコールにレベル0で入ったときのsp
thCBuffer: .ds.l 1 ;$005C スレッド間通信バッファのアドレス
thThreadName: .ds.b 16 ;$0060 スレッド名
thWaitTime: .ds.l 1 ;$0070 ウェイトタイム
;(以下は_GET_PRでコピーされない)
thMemStart: .ds.l 1 ;$0074 _MALLOCできるメモリ空間の先頭アドレス
thMemEnd: .ds.l 1 ;$0078 _MALLOCできるメモリ空間の末尾アドレス+1
thSize: ;$007C (124バイト)
.text
;----------------------------------------------------------------
;DOSコールにレベル0で入ったときのSSP([$1C5C].l)からのオフセット
.offset 0
dosD1: .ds.l 1 ;$0000 d1
dosD2: .ds.l 1 ;$0004 d2
dosD3: .ds.l 1 ;$0008 d3
dosD4: .ds.l 1 ;$000C d4
dosD5: .ds.l 1 ;$0010 d5
dosD6: .ds.l 1 ;$0014 d6
dosD7: .ds.l 1 ;$0018 d7
dosA0: .ds.l 1 ;$001C a0
dosA1: .ds.l 1 ;$0020 a1
dosA2: .ds.l 1 ;$0024 a2
dosA3: .ds.l 1 ;$0028 a3
dosA4: .ds.l 1 ;$002C a4
dosA5: .ds.l 1 ;$0030 a5
dosA6: .ds.l 1 ;$0034 a6
dosSR: .ds.w 1 ;$0038 sr
dosPC: .ds.l 1 ;$003A pc
dosFormat: .ds.w 1 ;$003E 例外フォーマットワード
dosSSP: ;$0040 (DOSコールにレベル0で入る前のSSPの位置)
.text
;----------------------------------------------------------------
.endif ;__DOSCONST_EQU__